using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

// how to sync it with 'remove monitor' event?
// subscribe on "monitors.MonitorRemoved" event & fire "MonitorRemoved" event for user ???

namespace Konst3d.Efficiency.Suite
{
    public enum MonitoringGroupChangeKind
    {
        MonitorDeleted,
        TaskDeleted
    }

    public delegate void MonitoringGroupChangedHandler(IMonitoringGroup sender, MonitoringGroupChangeKind kind);

    public interface IMonitoringGroup
    {
        event MonitoringGroupChangedHandler Changed;

        int ID
        {
            get;
        }

        string Title
        {
            get;
            set;
        }

        string Description
        {
            get;
            set;
        }

        // TOFIX: should be refactored...
        IIdentifiableCollection<IMonitor, int> Monitors
        {
            get;
        }

        // TOFIX: should be refactored...
        IIdentifiableCollection<ITask, int> Tasks
        {
            get;
        }

        // double GetSummaryValue();
        // double GetAverageValue();
        // ...
    }
}
